500
How can I get the number of results after a filter is applied

// Click event - Occurs when the user presses and then releases the left mouse button over the list control.
procedure TForm1.List1Click(ASender: TObject; );
begin
	with List1 do
	begin
		ClearFilter();
	end
end;

// FilterChange event - Occurs when filter was changed.
procedure TForm1.List1FilterChange(ASender: TObject; );
begin
	with List1 do
	begin
		OutputDebugString( 'Items.MatchItemCount' );
		OutputDebugString( Items.MatchItemCount );
		OutputDebugString( FormatABC('value < 0 ? `filter applied: ` + abs(value + 1) + ` result(s)` : `no filter`',Items.MatchItemCount,Null,Null) );
	end
end;

with List1 do
begin
	BeginUpdate();
	(IUnknown(Columns.Add('Item')) as EXLISTLib_TLB.Column).DisplayFilterButton := True;
	with (IUnknown(Columns.Add('Pos')) as EXLISTLib_TLB.Column) do
	begin
		AllowSizing := False;
		AllowSort := False;
		Width := 32;
		FormatColumn := '1 apos ``';
		Position := 0;
	end;
	with Items do
	begin
		Add('Item A');
		Add('Item B');
		Add('Item C');
	end;
	FilterBarPromptVisible := EXLISTLib_TLB.exFilterBarPromptVisible;
	FilterBarPromptPattern := 'Item';
	EndUpdate();
end
499
How can I programmatically clear the control's filter
// Click event - Occurs when the user presses and then releases the left mouse button over the list control.
procedure TForm1.List1Click(ASender: TObject; );
begin
	with List1 do
	begin
		ClearFilter();
	end
end;

with List1 do
begin
	BeginUpdate();
	(IUnknown(Columns.Add('Item')) as EXLISTLib_TLB.Column).DisplayFilterButton := True;
	with (IUnknown(Columns.Add('Pos')) as EXLISTLib_TLB.Column) do
	begin
		AllowSizing := False;
		AllowSort := False;
		Width := 32;
		FormatColumn := '1 apos ``';
		Position := 0;
	end;
	with Items do
	begin
		Add('Item A');
		Add('Item B');
		Add('Item C');
	end;
	FilterBarPromptVisible := EXLISTLib_TLB.exFilterBarPromptVisible;
	FilterBarPromptPattern := 'B';
	EndUpdate();
end
498
Is it possible to prevent closing the control's filter bar, so it is always shown (prompt-combined)

with List1 do
begin
	BeginUpdate();
	(IUnknown(Columns.Add('Item')) as EXLISTLib_TLB.Column).DisplayFilterButton := True;
	with (IUnknown(Columns.Add('Pos')) as EXLISTLib_TLB.Column) do
	begin
		AllowSizing := False;
		AllowSort := False;
		Width := 32;
		FormatColumn := '1 apos ``';
		Position := 0;
	end;
	with Items do
	begin
		Add('Item A');
		Add('Item B');
		Add('Item C');
	end;
	FilterBarPromptPattern := 'B';
	FilterBarPromptVisible := Integer(EXLISTLib_TLB.exFilterBarVisible) Or Integer(EXLISTLib_TLB.exFilterBarPromptVisible);
	with Columns.Item[OleVariant(0)] do
	begin
		FilterType := EXLISTLib_TLB.exFilter;
		Filter := 'Item B';
	end;
	ApplyFilter();
	EndUpdate();
end
497
Is it possible to prevent closing the control's filter bar, so it is always shown (prompt)

with List1 do
begin
	BeginUpdate();
	(IUnknown(Columns.Add('Item')) as EXLISTLib_TLB.Column).DisplayFilterButton := True;
	with (IUnknown(Columns.Add('Pos')) as EXLISTLib_TLB.Column) do
	begin
		AllowSizing := False;
		AllowSort := False;
		Width := 32;
		FormatColumn := '1 apos ``';
		Position := 0;
	end;
	with Items do
	begin
		Add('Item A');
		Add('Item B');
		Add('Item C');
	end;
	FilterBarPromptVisible := EXLISTLib_TLB.exFilterBarPromptVisible;
	FilterBarPromptPattern := 'B';
	EndUpdate();
end
496
Is it possible to prevent closing the control's filter bar, so it is always shown

with List1 do
begin
	BeginUpdate();
	(IUnknown(Columns.Add('Item')) as EXLISTLib_TLB.Column).DisplayFilterButton := True;
	with (IUnknown(Columns.Add('Pos')) as EXLISTLib_TLB.Column) do
	begin
		AllowSizing := False;
		AllowSort := False;
		Width := 32;
		FormatColumn := '1 apos ``';
		Position := 0;
	end;
	with Items do
	begin
		Add('Item A');
		Add('Item B');
		Add('Item C');
	end;
	FilterBarCaption := 'len(value) = 0 ? `<fgcolor=808080>no filter` : value';
	FilterBarPromptVisible := EXLISTLib_TLB.exFilterBarVisible;
	with Columns.Item[OleVariant(0)] do
	begin
		FilterType := EXLISTLib_TLB.exFilter;
		Filter := 'Item B';
	end;
	ApplyFilter();
	EndUpdate();
end
495
How can I find if the control is running in DPI mode
with List1 do
begin
	OutputDebugString( FormatABC('dpi = 1 ? `normal/stretch mode` : `dpi mode`',Null,Null,Null) );
end
494
I am using single selection, the question is if possible to select an item only when the user releases the mouse, as currently it selects the item as soon as the user clicks it
// SelectionChanged event - Fired after a new item is selected.
procedure TForm1.List1SelectionChanged(ASender: TObject; );
begin
	with List1 do
	begin
		OutputDebugString( 'SelectionChanged' );
	end
end;

with List1 do
begin
	BeginUpdate();
	FreezeEvents(True);
	SingleSel := True;
	SelectOnRelease := True;
	(IUnknown(Columns.Add('Column')) as EXLISTLib_TLB.Column).FormatColumn := '1 apos `A-Z`';
	with Items do
	begin
		Add('');
		SelectItem[Add('')] := True;
		Add('');
	end;
	FreezeEvents(False);
	EndUpdate();
end
493
Is it possible to select nothing
// SelectionChanged event - Fired after a new item is selected.
procedure TForm1.List1SelectionChanged(ASender: TObject; );
begin
	with List1 do
	begin
		OutputDebugString( 'SelectionChanged' );
	end
end;

with List1 do
begin
	BeginUpdate();
	FreezeEvents(True);
	AllowSelectNothing := True;
	(IUnknown(Columns.Add('Column')) as EXLISTLib_TLB.Column).FormatColumn := '1 apos `A-Z`';
	with Items do
	begin
		Add('');
		SelectItem[Add('')] := True;
		Add('');
	end;
	FreezeEvents(False);
	EndUpdate();
end
492
How do I change the drop down filter icon/button (black)

with List1 do
begin
	BeginUpdate();
	with VisualAppearance do
	begin
		Add(1,'gBFLBCJwBAEHhEJAAEhABXUIQAAYAQGKIcBiAKBQAGYBIJDEMgzDDAUBjKKocQTC4AIQjCK4JDKHYJRpHEZyCA8EhqGASRAFUQBYiWE4oSpLABQaK0ZwIGyRIrkGQgQg' + 
	'mPYDSDNU4zVIEEglBI0TDNczhNDENgtGYaJqHIYpZBcM40TKkEZoSIITZcRrOEBiRL1S0RBhGcRUHZlWzdN64LhuK47UrWdD/XhdVzXRbjfz1Oq+bxve48Br7A5yYThd' + 
	'r4LhOFQ3RjIL4xbIcUwGe6VZhjOLZXjmO49T69HTtOCYBEBA');
	end;
	Background[EXLISTLib_TLB.exCursorHoverColumn] := $ffffffff;
	Background[EXLISTLib_TLB.exHeaderFilterBarButton] := $1000000;
	Background[EXLISTLib_TLB.exBackColorFilter] := $10000;
	Background[EXLISTLib_TLB.exForeColorFilter] := $ffffff;
	Description[EXLISTLib_TLB.exFilterBarExclude] := '<bgcolor 0><fgcolor ffffff> Exclude </fgcolor></bgcolor>';
	HeaderAppearance := EXLISTLib_TLB.None2;
	BackColorHeader := RGB(0,0,0);
	ForeColorHeader := RGB(255,255,255);
	HeaderVisible := True;
	BackColorLevelHeader := BackColor;
	with (IUnknown(Columns.Add('Filter')) as EXLISTLib_TLB.Column) do
	begin
		FilterList := Integer(EXLISTLib_TLB.exShowExclude) Or Integer(EXLISTLib_TLB.exShowCheckBox);
		DisplayFilterButton := True;
		AllowSort := False;
		AllowDragging := False;
	end;
	with Items do
	begin
		Add('One');
		Add('Two');
		Add('Three');
	end;
	EndUpdate();
end
491
How do I change the drop down filter icon/button (white)

with List1 do
begin
	BeginUpdate();
	with VisualAppearance do
	begin
		Add(2,'gBFLBCJwBAEHhEJAAEhABX8GACAADACAxSDEMQBQKAAzQFAYbhgHCGAAGQaBUgmFgAQhFcZQSKUOQTDKNYykCIRSDUJYkSZEIyjBI8ExXFqNACkGKwYgmNYiTLAcgANJ' + 
	'0WBaGIZJ4gOT5fDKMoEDRRYADFCscwxJybQAqGQKKb+VgAVY/cTyBIAEQSKA0TDOQ5TSKWB4JPZQRBEbZMNBtBIUJquKaqShdQJCU5FdY3Xblez9P7AMBwLFEC4NQ8YN' + 
	'YuPhjR4dRTIMhvVAsUArFh8Zg9GZZFjmDIDT4ydBLTQwcyVIKnP5qOa6XbmPoCQDYKxZHYxPzVDa3axuL76dqCAT7XrXNy1TbNRrzQKfcJqfCbdw2YaDZLOOT3fjuI4h' + 
	'hKaRzFAHJ+jYQ4xHuY4gHuGIXGeExqC8Tp6C+PoEm+G5ImycRgh0XwvDGa5rgOeoejyXwnFeQp2mkf5ClgBB9gCWIYAwfYAEKV58mkdwOggNArgOXY2EWLoDkKOA0mgb' + 
	'hOGgZApgaSBIHWSYHSmbApgYThmESZYJkIeIkgeCpfliLIHgpMIcmUYYYmODAlg2SI4mWfRfGOEguDcCRjFYAJihCQhJBSDoRmONgKEcI4kFCEJhhOVYTmYnAlEAQhWB' + 
	'MJYJGYWoWmWSR2F6F5lnkWAQhUAgpEieRWEuSYkjWGpmkmNhuhuZwJkYcocmaaYkjyEhngnUA6lEFAlAEgI=');
		Add(1,'CP:2 -14 -4 -2 4');
	end;
	Background[EXLISTLib_TLB.exHeaderFilterBarButton] := $1000000;
	Background[EXLISTLib_TLB.exCursorHoverColumn] := BackColor;
	HeaderAppearance := EXLISTLib_TLB.None2;
	BackColorHeader := RGB(255,255,255);
	HeaderVisible := True;
	HeaderHeight := 24;
	BackColorLevelHeader := BackColor;
	with (IUnknown(Columns.Add('Filter')) as EXLISTLib_TLB.Column) do
	begin
		DisplayFilterButton := True;
		AllowSort := False;
		AllowDragging := False;
	end;
	EndUpdate();
end
490
Can I display the column's multiple-lines caption vertically oriented (method 2)

with List1 do
begin
	BeginUpdate();
	HeaderHeight := 48;
	ColumnAutoResize := True;
	with Columns do
	begin
		Add('And others ...');
		with (IUnknown(Add('')) as EXLISTLib_TLB.Column) do
		begin
			HTMLCaption := 'First Column';
			HeaderVertical := True;
			Width := 36;
			AllowSizing := False;
			Def[EXLISTLib_TLB.exCellHasCheckBox] := OleVariant(True);
			Def[EXLISTLib_TLB.exCellPaddingLeft] := OleVariant(8);
			Position := 0;
		end;
		with (IUnknown(Add('')) as EXLISTLib_TLB.Column) do
		begin
			HTMLCaption := '<c><b>Second Column';
			HeaderVertical := True;
			Width := 36;
			AllowSizing := False;
			Def[EXLISTLib_TLB.exCellHasCheckBox] := OleVariant(True);
			Def[EXLISTLib_TLB.exCellPaddingLeft] := OleVariant(8);
			Position := 1;
		end;
		with (IUnknown(Add('')) as EXLISTLib_TLB.Column) do
		begin
			HTMLCaption := '<r>Third Column';
			HeaderVertical := True;
			Width := 36;
			AllowSizing := False;
			Def[EXLISTLib_TLB.exCellHasCheckBox] := OleVariant(True);
			Def[EXLISTLib_TLB.exCellPaddingLeft] := OleVariant(8);
			Position := 2;
		end;
	end;
	with Items do
	begin
		CellState[Add('Item 1'),OleVariant(3)] := 1;
		CellState[Add('Item 2'),OleVariant(2)] := 1;
		CellState[Add('Item 3'),OleVariant(1)] := 1;
	end;
	EndUpdate();
end
489
Can I display the column's multiple-lines caption vertically oriented (method 1)

with List1 do
begin
	BeginUpdate();
	HeaderHeight := 48;
	HeaderSingleLine := False;
	ColumnAutoResize := True;
	with Columns do
	begin
		Add('And others ...');
		with (IUnknown(Add('First Column')) as EXLISTLib_TLB.Column) do
		begin
			HeaderVertical := True;
			Width := 36;
			AllowSizing := False;
			Def[EXLISTLib_TLB.exCellHasCheckBox] := OleVariant(True);
			Def[EXLISTLib_TLB.exCellPaddingLeft] := OleVariant(8);
			Position := 0;
		end;
		with (IUnknown(Add('Second Column')) as EXLISTLib_TLB.Column) do
		begin
			HeaderBold := True;
			HeaderVertical := True;
			Width := 36;
			AllowSizing := False;
			Def[EXLISTLib_TLB.exCellHasCheckBox] := OleVariant(True);
			Def[EXLISTLib_TLB.exCellPaddingLeft] := OleVariant(8);
			Position := 1;
		end;
		with (IUnknown(Add('Third Column')) as EXLISTLib_TLB.Column) do
		begin
			HeaderVertical := True;
			Width := 36;
			AllowSizing := False;
			Def[EXLISTLib_TLB.exCellHasCheckBox] := OleVariant(True);
			Def[EXLISTLib_TLB.exCellPaddingLeft] := OleVariant(8);
			Position := 2;
		end;
	end;
	with Items do
	begin
		CellState[Add('Item 1'),OleVariant(3)] := 1;
		CellState[Add('Item 2'),OleVariant(2)] := 1;
		CellState[Add('Item 3'),OleVariant(1)] := 1;
	end;
	EndUpdate();
end
488
Can I display the column's caption vertically oriented (method 2)

with List1 do
begin
	BeginUpdate();
	HeaderHeight := 48;
	ColumnAutoResize := True;
	with Columns do
	begin
		Add('And others ...');
		with (IUnknown(Add('')) as EXLISTLib_TLB.Column) do
		begin
			HTMLCaption := 'First';
			HeaderVertical := True;
			Width := 20;
			AllowSizing := False;
			Def[EXLISTLib_TLB.exCellHasCheckBox] := OleVariant(True);
			Position := 0;
		end;
		with (IUnknown(Add('')) as EXLISTLib_TLB.Column) do
		begin
			HTMLCaption := '<c><b>Second';
			HeaderVertical := True;
			Width := 20;
			AllowSizing := False;
			Def[EXLISTLib_TLB.exCellHasCheckBox] := OleVariant(True);
			Position := 1;
		end;
		with (IUnknown(Add('')) as EXLISTLib_TLB.Column) do
		begin
			HTMLCaption := '<r>Third';
			HeaderVertical := True;
			Width := 20;
			AllowSizing := False;
			Def[EXLISTLib_TLB.exCellHasCheckBox] := OleVariant(True);
			Position := 2;
		end;
	end;
	with Items do
	begin
		CellState[Add('Item 1'),OleVariant(3)] := 1;
		CellState[Add('Item 2'),OleVariant(2)] := 1;
		CellState[Add('Item 3'),OleVariant(1)] := 1;
	end;
	EndUpdate();
end
487
Can I display the column's caption vertically oriented (method 1)

with List1 do
begin
	BeginUpdate();
	HeaderHeight := 48;
	ColumnAutoResize := True;
	with Columns do
	begin
		Add('And others ...');
		with (IUnknown(Add('First')) as EXLISTLib_TLB.Column) do
		begin
			HeaderVertical := True;
			Width := 20;
			AllowSizing := False;
			Def[EXLISTLib_TLB.exCellHasCheckBox] := OleVariant(True);
			Position := 0;
		end;
		with (IUnknown(Add('Second')) as EXLISTLib_TLB.Column) do
		begin
			HeaderBold := True;
			HeaderVertical := True;
			Width := 20;
			AllowSizing := False;
			Def[EXLISTLib_TLB.exCellHasCheckBox] := OleVariant(True);
			Position := 1;
		end;
		with (IUnknown(Add('Third')) as EXLISTLib_TLB.Column) do
		begin
			HeaderVertical := True;
			Width := 20;
			AllowSizing := False;
			Def[EXLISTLib_TLB.exCellHasCheckBox] := OleVariant(True);
			Position := 2;
		end;
	end;
	with Items do
	begin
		CellState[Add('Item 1'),OleVariant(3)] := 1;
		CellState[Add('Item 2'),OleVariant(2)] := 1;
		CellState[Add('Item 3'),OleVariant(1)] := 1;
	end;
	EndUpdate();
end
486
How do I get sorted the column as string, numeric, date, date and time. Also how can it be applied to drop down filter panel

with List1 do
begin
	BeginUpdate();
	with (IUnknown(Columns.Add('Date')) as EXLISTLib_TLB.Column) do
	begin
		SortType := EXLISTLib_TLB.SortDate;
		DisplayFilterButton := True;
		DisplayFilterPattern := False;
		DisplayFilterDate := True;
		FilterList := Integer(EXLISTLib_TLB.exShowFocusItem) Or Integer(EXLISTLib_TLB.exShowCheckBox) Or Integer(EXLISTLib_TLB.exSortItemsDesc);
	end;
	with (IUnknown(Columns.Add('DateTime')) as EXLISTLib_TLB.Column) do
	begin
		SortType := EXLISTLib_TLB.SortDateTime;
		DisplayFilterButton := True;
		DisplayFilterPattern := False;
		FilterList := Integer(EXLISTLib_TLB.exShowFocusItem) Or Integer(EXLISTLib_TLB.exShowCheckBox) Or Integer(EXLISTLib_TLB.exSortItemsDesc);
	end;
	with (IUnknown(Columns.Add('Time')) as EXLISTLib_TLB.Column) do
	begin
		SortType := EXLISTLib_TLB.SortTime;
		DisplayFilterButton := True;
		DisplayFilterPattern := False;
		FilterList := Integer(EXLISTLib_TLB.exShowFocusItem) Or Integer(EXLISTLib_TLB.exShowCheckBox) Or Integer(EXLISTLib_TLB.exSortItemsDesc);
		FormatColumn := 'time(value)';
	end;
	with (IUnknown(Columns.Add('Numeric')) as EXLISTLib_TLB.Column) do
	begin
		SortType := EXLISTLib_TLB.SortNumeric;
		DisplayFilterButton := True;
		FilterList := Integer(EXLISTLib_TLB.exShowFocusItem) Or Integer(EXLISTLib_TLB.exShowCheckBox) Or Integer(EXLISTLib_TLB.exSortItemsDesc);
	end;
	with (IUnknown(Columns.Add('String')) as EXLISTLib_TLB.Column) do
	begin
		DisplayFilterButton := True;
		FilterList := Integer(EXLISTLib_TLB.exShowFocusItem) Or Integer(EXLISTLib_TLB.exShowCheckBox) Or Integer(EXLISTLib_TLB.exSortItemsDesc);
	end;
	with Items do
	begin
		h := Add('1/27/2010');
		Caption[h,OleVariant(1)] := '1/27/2010 10:00:00 AM';
		Caption[h,OleVariant(2)] := Caption[h,OleVariant(1)];
		Caption[h,OleVariant(3)] := OleVariant(1);
		Caption[h,OleVariant(4)] := Caption[h,OleVariant(3)];
		h := Add('1/27/2011');
		Caption[h,OleVariant(1)] := '1/27/2011 9:00:00 AM';
		Caption[h,OleVariant(2)] := Caption[h,OleVariant(1)];
		Caption[h,OleVariant(3)] := OleVariant(11);
		Caption[h,OleVariant(4)] := Caption[h,OleVariant(3)];
		h := Add('11/2/2010');
		Caption[h,OleVariant(1)] := '11/2/2010 9:00:00 AM';
		Caption[h,OleVariant(2)] := Caption[h,OleVariant(1)];
		Caption[h,OleVariant(3)] := OleVariant(2);
		Caption[h,OleVariant(4)] := Caption[h,OleVariant(3)];
	end;
	Columns.Item['DateTime'].DisplayFilterDate := False;
	EndUpdate();
end
485
How can I get ride / hide the image being dragged by OLE Drag and Drop
// OLEStartDrag event - Occurs when the OLEDrag method is called.
procedure TForm1.List1OLEStartDrag(ASender: TObject; Data : IExDataObject;var AllowedEffects : Integer);
begin
	// Data.SetData("data to drag")
	with List1 do
	begin
		AllowedEffects := 1;
	end
end;

with List1 do
begin
	OLEDropMode := EXLISTLib_TLB.exOLEDropManual;
	Background[EXLISTLib_TLB.exDragDropAfter] := $ffffff;
	Columns.Add('Default');
	with Items do
	begin
		Add('Item 1');
		Add('Item 2');
		Add('Item 3');
	end;
end
484
Is there an event that fires on the exList control when the order of items in the list is changed via dragging
// AllowAutoDrag event - Occurs when the user drags the item between InsertA and InsertB.
procedure TForm1.List1AllowAutoDrag(ASender: TObject; Item : Integer;InsertA : Integer;InsertB : Integer;var Cancel : WordBool);
begin
	with List1 do
	begin
		with Items do
		begin
			OutputDebugString( 'After' );
			OutputDebugString( Caption[InsertA,OleVariant(0)] );
			OutputDebugString( 'Before' );
			OutputDebugString( Caption[InsertB,OleVariant(0)] );
		end;
		Cancel := True;
	end
end;

with List1 do
begin
	BeginUpdate();
	AutoDrag := EXLISTLib_TLB.exAutoDragPosition;
	Columns.Add('Task');
	with Items do
	begin
		Add('Item 1');
		Add('Item 2');
		Add('Item 3');
		Add('Item 4');
	end;
	EndUpdate();
end
483
How can I export checked items only

with List1 do
begin
	BeginUpdate();
	with Columns do
	begin
		(IUnknown(Add('C1')) as EXLISTLib_TLB.Column).Def[EXLISTLib_TLB.exCellHasCheckBox] := OleVariant(True);
		(IUnknown(Add('C2')) as EXLISTLib_TLB.Column).FormatColumn := '1 index `A-Z`';
		(IUnknown(Add('C3')) as EXLISTLib_TLB.Column).FormatColumn := '100 index ``';
	end;
	with Items do
	begin
		Add('Item 1');
		CellState[Add('Item 2'),OleVariant(0)] := 1;
		CellState[Add('Item 3'),OleVariant(0)] := 1;
	end;
	EndUpdate();
	OutputDebugString( 'Export CSV Checked Items Only:' );
	OutputDebugString( Export('','chk') );
end
482
How can I export a hidden column

with List1 do
begin
	BeginUpdate();
	with Columns do
	begin
		Add('C1');
		with (IUnknown(Add('C2')) as EXLISTLib_TLB.Column) do
		begin
			FormatColumn := '1 index `A-Z`';
			Visible := False;
		end;
		with (IUnknown(Add('C3')) as EXLISTLib_TLB.Column) do
		begin
			FormatColumn := '100 index ``';
			Visible := False;
		end;
	end;
	with Items do
	begin
		Add('Item 1');
		Add('Item 2');
		Add('Item 3');
	end;
	EndUpdate();
	OutputDebugString( 'Export CSV Hidden Columns (1,2):' );
	OutputDebugString( Export('','|1,2') );
end
481
Is it possible to have a different alignment for parts of the cell's caption

with List1 do
begin
	BeginUpdate();
	DrawGridLines := EXLISTLib_TLB.exAllLines;
	with (IUnknown(Columns.Add('Default')) as EXLISTLib_TLB.Column) do
	begin
		Def[EXLISTLib_TLB.exCellHasCheckBox] := OleVariant(True);
	end;
	with Items do
	begin
		CellHAlignment[Add('all-left'),OleVariant(0)] := EXLISTLib_TLB.LeftAlignment;
		CellHAlignment[Add('all-center'),OleVariant(0)] := EXLISTLib_TLB.CenterAlignment;
		CellHAlignment[Add('all-right'),OleVariant(0)] := EXLISTLib_TLB.RightAlignment;
		h := Add('left<c>center<r>right');
		CaptionFormat[h,OleVariant(0)] := EXLISTLib_TLB.exHTML;
	end;
	EndUpdate();
end
480
I have a column with Def(exCellSingleLine) property on False, word-wrapping, and I am wondering if possible to update the column's content while user is resizing it
with List1 do
begin
	BeginUpdate();
	with Columns do
	begin
		with (IUnknown(Add('MultipleLine')) as EXLISTLib_TLB.Column) do
		begin
			Width := 32;
			Def[EXLISTLib_TLB.exCellSingleLine] := OleVariant(False);
			Def[EXLISTLib_TLB.exColumnResizeContiguously] := OleVariant(True);
		end;
		with (IUnknown(Add('SingleLine')) as EXLISTLib_TLB.Column) do
		begin
			Def[EXLISTLib_TLB.exCellSingleLine] := OleVariant(False);
		end;
	end;
	with Items do
	begin
		Caption[Add('This is a bit of long text that should break the line'),OleVariant(1)] := 'This is a bit of long text that should break the line';
	end;
	EndUpdate();
end
479
How can I hide the cell's tooltip
// ToolTip event - Fired when the control prepares the object's tooltip.
procedure TForm1.List1ToolTip(ASender: TObject; ItemIndex : Integer;ColIndex : Integer;var Visible : WordBool;var X : Integer;var Y : Integer;CX : Integer;CY : Integer);
begin
	with List1 do
	begin
		OutputDebugString( 'The tooltip is about to be shown' );
		Visible := False;
	end
end;

with List1 do
begin
	BeginUpdate();
	Columns.Add('Def');
	with Items do
	begin
		CellToolTip[Add('Item 1'),OleVariant(0)] := 'This is a bit of text that''s shown when cursor hovers the item.';
		CellToolTip[Add('Item 2'),OleVariant(0)] := 'This is a bit of text that''s shown when cursor hovers the item.';
		CellToolTip[Add('Item 3'),OleVariant(0)] := 'This is a bit of text that''s shown when cursor hovers the item.';
	end;
	EndUpdate();
end
478
How can I find out if an item is selected or unselected
// MouseMove event - Occurs when the user moves the mouse.
procedure TForm1.List1MouseMove(ASender: TObject; Button : Smallint;Shift : Smallint;X : Integer;Y : Integer);
begin
	with List1 do
	begin
		i := ItemFromPoint[-1,-1,c,hit];
		with Items do
		begin
			OutputDebugString( SelectItem[i] );
		end;
	end
end;

with List1 do
begin
	Columns.Add('Header');
	with Items do
	begin
		Add('Item 1');
		SelectItem[Add('Item 2')] := True;
		Add('Item 3');
	end;
end
477
How do I sort the index column as numeric

// AddItem event - Occurs after a new Item is inserted to Items collection.
procedure TForm1.List1AddItem(ASender: TObject; Item : Integer);
begin
	with List1 do
	begin
		with Items do
		begin
			CellData[Item,OleVariant(1)] := OleVariant(Item);
		end;
	end
end;

with List1 do
begin
	BeginUpdate();
	DrawGridLines := EXLISTLib_TLB.exAllLines;
	ColumnAutoResize := True;
	ShowFocusRect := False;
	with (IUnknown(Columns.Add('Next')) as EXLISTLib_TLB.Column) do
	begin
		Def[EXLISTLib_TLB.exCellPaddingLeft] := OleVariant(4);
		Def[EXLISTLib_TLB.exHeaderPaddingLeft] := OleVariant(4);
	end;
	with (IUnknown(Columns.Add('Index')) as EXLISTLib_TLB.Column) do
	begin
		AllowSizing := False;
		Width := 48;
		FormatColumn := '(((0 := (1 index ``)) mod 3) case ( default: ``; 0 : `<r><fgcolor=B0B0B0>`; 1: ``; 2 : `<c><fgcolor=808080>` )) + str(=:0)';
		Def[EXLISTLib_TLB.exCaptionFormat] := OleVariant(1);
		SortType := EXLISTLib_TLB.SortUserData;
		Position := 0;
	end;
	with Items do
	begin
		Add('Item 1');
		Add('Item 2');
		Add('Item 3');
		Add('Item 4');
		Add('Item 5');
		Add('Item 6');
		Add('Item 7');
		Add('Item 8');
		Add('Item 9');
		Add('Item 10');
	end;
	EndUpdate();
end
476
How can I put icons/images into buttons

with List1 do
begin
	BeginUpdate();
	ColumnAutoResize := True;
	Images('gBJJgBAIDAAGAAEAAQhYAf8Pf4hh0QihCJo2AEZjQAjEZFEaIEaEEaAIAkcbk0olUrlktl0vmExmUzmk1m03nE5nU7nk9n0/oFBoVDolFo1HpFJpVLplNp1PqFRqVTql' + 
	'Vq1XrFZrVbrldr1fsFhsVjslls1ntFptVrtltt1vuFxuVzul1u13vF5vV7vl9v1/wGBwWDwmFw2HxGJxWLxmNx0xiFdyOTh8Tf9ZymXx+QytcyNgz8r0OblWjyWds+m0' + 
	'ka1Vf1ta1+r1mos2xrG2xeZ0+a0W0qOx3GO4NV3WeyvD2XJ5XL5nN51aiw+lfSj0gkUkAEllHanHI5j/cHg8EZf7w8vl8j4f/qfEZeB09/vjLAB30+kZQAP/P5/H6/yN' + 
	'AOAEAwCjMBwFAEDwJBMDwLBYAP2/8Hv8/gAGAD8LQs9w/nhDY/oygIA=');
	with (IUnknown(Columns.Add('C+B')) as EXLISTLib_TLB.Column) do
	begin
		AllowSizing := False;
		Width := 48;
		FormatColumn := '` <img>` + ( 1 + (1 index ``) mod 3 ) + `</img> `';
		Def[EXLISTLib_TLB.exCaptionFormat] := OleVariant(1);
		Def[EXLISTLib_TLB.exCellHasCheckBox] := OleVariant(True);
		Def[EXLISTLib_TLB.exCellHasButton] := OleVariant(True);
		Def[Integer(EXLISTLib_TLB.exCellHasButton) Or Integer(EXLISTLib_TLB.exCellHasRadioButton)] := OleVariant(True);
	end;
	Columns.Add('');
	DrawGridLines := EXLISTLib_TLB.exVLines;
	DefaultItemHeight := 20;
	with Items do
	begin
		Add('');
		Add('');
		Add('');
		Add('');
		Add('');
		Add('');
		Add('');
		Add('');
	end;
	EndUpdate();
end
475
Is it possible to have a CheckBox and Button TOGETHER on all cells in a column

// CellButtonClick event - Fired after the user clicks the cell's button.
procedure TForm1.List1CellButtonClick(ASender: TObject; Item : Integer;ColIndex : Integer);
begin
	with List1 do
	begin
			OutputDebugString( 'CellButtonClick' );
		OutputDebugString( Item );
	end
end;

// CellStateChanged event - Fired after cell's state is changed.
procedure TForm1.List1CellStateChanged(ASender: TObject; Item : Integer;ColIndex : Integer);
begin
	with List1 do
	begin
			OutputDebugString( 'CellStateChanged' );
		OutputDebugString( Item );
	end
end;

with List1 do
begin
	BeginUpdate();
	ColumnAutoResize := True;
	with (IUnknown(Columns.Add('')) as EXLISTLib_TLB.Column) do
	begin
		AllowSizing := False;
		Width := 32;
		FormatColumn := '1 index ``';
	end;
	with (IUnknown(Columns.Add('Def')) as EXLISTLib_TLB.Column) do
	begin
		AllowSizing := False;
		Width := 48;
		FormatColumn := '`     `';
		Def[EXLISTLib_TLB.exCellHasCheckBox] := OleVariant(True);
		Def[EXLISTLib_TLB.exCellHasButton] := OleVariant(True);
		Def[Integer(EXLISTLib_TLB.exCellHasButton) Or Integer(EXLISTLib_TLB.exCellHasRadioButton)] := OleVariant(True);
	end;
	Columns.Add('');
	with Items do
	begin
		Add('');
		Add('');
		Add('');
		Add('');
		Add('');
		Add('');
		Add('');
		Add('');
	end;
	EndUpdate();
end
474
Does filtering work with umlauts / accents characters
with List1 do
begin
	BeginUpdate();
	with (IUnknown(Columns.Add('Names')) as EXLISTLib_TLB.Column) do
	begin
		DisplayFilterButton := True;
		FilterType := EXLISTLib_TLB.exPattern;
	end;
	with Items do
	begin
		Add('Mantel');
		Add('Mechanik');
		Add('Motor');
		Add('Murks');
		Add('Märchen');
		Add('Möhren');
		Add('Mühle');
		Add('Sérigraphie');
	end;
	Columns.Item[OleVariant(0)].Filter := '*ä*';
	ApplyFilter();
	EndUpdate();
end
473
Can I set the search box / filterbarprompt to invisible, so I can use my own input and *string* via VBA
with List1 do
begin
	BeginUpdate();
	ColumnAutoResize := True;
	ContinueColumnScroll := False;
	MarkSearchColumn := False;
	SearchColumnIndex := 1;
	FilterBarHeight := 0;
	FilterBarPromptVisible := True;
	with Columns do
	begin
		(IUnknown(Add('Name')) as EXLISTLib_TLB.Column).Width := 96;
		(IUnknown(Add('Title')) as EXLISTLib_TLB.Column).Width := 96;
		Add('City');
	end;
	with Items do
	begin
		h0 := Add('Nancy Davolio');
		Caption[h0,OleVariant(1)] := 'Sales Representative';
		Caption[h0,OleVariant(2)] := 'Seattle';
		h0 := Add('Andrew Fuller');
		Caption[h0,OleVariant(1)] := 'Vice President, Sales';
		Caption[h0,OleVariant(2)] := 'Tacoma';
		SelectItem[h0] := True;
		h0 := Add('Janet Leverling');
		Caption[h0,OleVariant(1)] := 'Sales Representative';
		Caption[h0,OleVariant(2)] := 'Kirkland';
		h0 := Add('Margaret Peacock');
		Caption[h0,OleVariant(1)] := 'Sales Representative';
		Caption[h0,OleVariant(2)] := 'Redmond';
		h0 := Add('Steven Buchanan');
		Caption[h0,OleVariant(1)] := 'Sales Manager';
		Caption[h0,OleVariant(2)] := 'London';
		h0 := Add('Michael Suyama');
		Caption[h0,OleVariant(1)] := 'Sales Representative';
		Caption[h0,OleVariant(2)] := 'London';
		h0 := Add('Robert King');
		Caption[h0,OleVariant(1)] := 'Sales Representative';
		Caption[h0,OleVariant(2)] := 'London';
		h0 := Add('Laura Callahan');
		Caption[h0,OleVariant(1)] := 'Inside Sales Coordinator';
		Caption[h0,OleVariant(2)] := 'Seattle';
		h0 := Add('Anne Dodsworth');
		Caption[h0,OleVariant(1)] := 'Sales Representative';
		Caption[h0,OleVariant(2)] := 'London';
	end;
	FilterBarPromptPattern := 'London';
	EndUpdate();
end
472
How can I align captions of items with checkbox, with items with no checkbox

with List1 do
begin
	BeginUpdate();
	Columns.Add('Default');
	with Items do
	begin
		CellImages[Add(OleVariant(0)),OleVariant(0)] := '1';
		CellHasCheckBox[Add(OleVariant(1)),OleVariant(0)] := True;
		CellImages[Add(OleVariant(2)),OleVariant(0)] := '1';
	end;
	EndUpdate();
end
471
How do I programmatically scroll the control (method 2)
with List1 do
begin
	BeginUpdate();
	ColumnAutoResize := False;
	ContinueColumnScroll := False;
	rs := (IUnknown(ComObj.CreateComObject(ComObj.ProgIDToClassID('ADOR.Recordset'))) as ADODB_TLB.Recordset);
	with rs do
	begin
		Open('Orders','Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\Program Files\Exontrol\ExList\Sample\Access\SAMPLE.ACCDB',3,3,Null);
	end;
	DataSource := (IUnknown(rs) as ADODB_TLB.Recordset);
	Layout := 'vscroll = 10';
	EndUpdate();
end
470
How do I programmatically scroll the control (method 1)
with List1 do
begin
	BeginUpdate();
	ColumnAutoResize := False;
	ContinueColumnScroll := False;
	rs := (IUnknown(ComObj.CreateComObject(ComObj.ProgIDToClassID('ADOR.Recordset'))) as ADODB_TLB.Recordset);
	with rs do
	begin
		Open('Orders','Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\Program Files\Exontrol\ExList\Sample\Access\SAMPLE.ACCDB',3,3,Null);
	end;
	DataSource := (IUnknown(rs) as ADODB_TLB.Recordset);
	ScrollPos[True] := 10;
	EndUpdate();
end
469
How can I decode the Layout property
with List1 do
begin
	BeginUpdate();
	with Columns do
	begin
		Add('C1');
		(IUnknown(Add('C2')) as EXLISTLib_TLB.Column).Position := 1;
	end;
	with Items do
	begin
		Caption[Add('SubItem 1.1'),OleVariant(1)] := 'SubItem 1.2';
		Caption[Add('SubItem 2.1'),OleVariant(1)] := 'SubItem 2.2';
	end;
	Columns.Item['C2'].SortOrder := EXLISTLib_TLB.SortDescending;
	EndUpdate();
	OutputDebugString( 'Encoded:' );
	OutputDebugString( Layout );
	with (IUnknown(ComObj.CreateComObject(ComObj.ProgIDToClassID('Exontrol.Print'))) as EXPRINTLib_TLB.Print) do
	begin
		OutputDebugString( 'Decoded: ' );
		OutputDebugString( Decode64TextW[List1.Layout] );
	end;
end
468
Does the title of the cell's tooltip supports HTML format

with List1 do
begin
	BeginUpdate();
	with (IUnknown(Columns.Add('')) as EXLISTLib_TLB.Column) do
	begin
		Caption := '';
		HTMLCaption := 'Column';
	end;
	with Items do
	begin
		h := Add('tooltip w/h different title');
		CellToolTip[h,OleVariant(0)] := '<c><b><fgcolor=FF0000>Title</fgcolor></b><br>This is bit of text that''s shown when the user hovers the cell. This shows the titl' + 
	'e centered with a different color.';
	end;
	EndUpdate();
end
467
How do I specify a different title for the cell's tooltip

with List1 do
begin
	BeginUpdate();
	with (IUnknown(Columns.Add('')) as EXLISTLib_TLB.Column) do
	begin
		Caption := 'This is the title';
		HTMLCaption := 'Column';
	end;
	with Items do
	begin
		h := Add('tooltip w/h different title');
		CellToolTip[h,OleVariant(0)] := 'This is bit of text that''s shown when the user hovers the cell.';
	end;
	EndUpdate();
end
466
The cell's tooltip displays the column's caption in its title. How can I get ride of that

with List1 do
begin
	BeginUpdate();
	with Columns do
	begin
		Add('C1');
		Add('C2');
	end;
	with Items do
	begin
		h := Add('tooltip w/h caption');
		CellToolTip[h,OleVariant(0)] := 'This is bit of text that''s shown when the user hovers the cell. This shows the column''s caption in the title.';
		Caption[h,OleVariant(1)] := 'tooltip no caption';
		CellToolTip[h,OleVariant(1)] := 'This is bit of text that''s shown when the user hovers the cell. This shows no column''s caption in the title.';
	end;
	with Columns.Item['C2'] do
	begin
		HTMLCaption := Caption;
		Caption := '';
	end;
	EndUpdate();
end
465
When you click the cell it takes some time before the edit box appears, can this delay be removed

// Click event - Occurs when the user presses and then releases the left mouse button over the list control.
procedure TForm1.List1Click(ASender: TObject; );
begin
	with List1 do
	begin
		h := ItemFromPoint[-1,-1,ColIndex,HitTestInfo];
		Items.Edit(h,OleVariant(ColIndex));
	end
end;

with List1 do
begin
	AllowEdit := True;
	Columns.Add('Default');
	with Items do
	begin
		Add('');
		Add('Edit');
		Add('');
	end;
end
464
How can I programmatically show the column's filter

// RClick event - Fired when right mouse button is clicked
procedure TForm1.List1RClick(ASender: TObject; );
begin
	with List1 do
	begin
		i := ItemFromPoint[-1,-1,c,hit];
		Columns.Item[OleVariant(c)].ShowFilter('-1,-1,128,128');
	end
end;

with List1 do
begin
	BeginUpdate();
	ShowFocusRect := False;
	with (IUnknown(Columns.Add('Items ')) as EXLISTLib_TLB.Column) do
	begin
		DisplayFilterPattern := False;
		FilterList := Integer(EXLISTLib_TLB.exShowExclude) Or Integer(EXLISTLib_TLB.exShowFocusItem) Or Integer(EXLISTLib_TLB.exShowCheckBox);
	end;
	with Items do
	begin
		Add('Item 1');
		Add('Item 2');
		Add('Item 3');
	end;
	EndUpdate();
end
463
I want to be able to click on one of the headers, and sort by other column. How can I do that

// ColumnClick event - Fired after the user clicks on column's header.
procedure TForm1.List1ColumnClick(ASender: TObject; Column : IColumn);
begin
	// Column.SortOrder = 1
	with List1 do
	begin
		SortOnClick := EXLISTLib_TLB.exDefaultSort;
		Columns.Item['Sort'].SortOrder := EXLISTLib_TLB.SortAscending;
		SortOnClick := EXLISTLib_TLB.exUserSort;
	end
end;

with List1 do
begin
	BeginUpdate();
	SortOnClick := EXLISTLib_TLB.exUserSort;
	Columns.Add('Items');
	(IUnknown(Columns.Add('Sort')) as EXLISTLib_TLB.Column).Visible := False;
	with Items do
	begin
		Caption[Add('Item 1 (3)'),OleVariant(1)] := OleVariant(3);
		Caption[Add('Item 2 (1)'),OleVariant(1)] := OleVariant(1);
		Caption[Add('Item 3 (2)'),OleVariant(1)] := OleVariant(2);
	end;
	EndUpdate();
end
462
How can I sort by two-columns, one by date and one by time

with List1 do
begin
	BeginUpdate();
	SingleSort := False;
	with Columns do
	begin
		(IUnknown(Add('Index')) as EXLISTLib_TLB.Column).FormatColumn := '1 index ``';
		(IUnknown(Add('Date')) as EXLISTLib_TLB.Column).SortType := EXLISTLib_TLB.SortDate;
		with (IUnknown(Add('Time')) as EXLISTLib_TLB.Column) do
		begin
			SortType := EXLISTLib_TLB.SortTime;
			FormatColumn := 'time(value)';
		end;
	end;
	with Items do
	begin
		h := Add(OleVariant(0));
		Caption[h,OleVariant(1)] := '1/1/2001';
		Caption[h,OleVariant(2)] := '1/1/2001 10:00:00 AM';
		h := Add(OleVariant(0));
		Caption[h,OleVariant(1)] := '12/31/2000';
		Caption[h,OleVariant(2)] := '1/1/2001 10:00:00 AM';
		h := Add(OleVariant(0));
		Caption[h,OleVariant(1)] := '1/1/2001';
		Caption[h,OleVariant(2)] := '1/1/2001 6:00:00 AM';
		h := Add(OleVariant(0));
		Caption[h,OleVariant(1)] := '12/31/2000';
		Caption[h,OleVariant(2)] := '1/1/2001 8:00:00 AM';
		h := Add(OleVariant(0));
		Caption[h,OleVariant(1)] := '1/1/2001';
		Caption[h,OleVariant(2)] := '1/1/2001 8:00:00 AM';
		h := Add(OleVariant(0));
		Caption[h,OleVariant(1)] := '12/31/2000';
		Caption[h,OleVariant(2)] := '1/1/2001 6:00:00 AM';
	end;
	Layout := 'multiplesort="C1:1 C2:1"';
	EndUpdate();
end
461
How can I connect to a DBF file
with List1 do
begin
	BeginUpdate();
	ColumnAutoResize := False;
	ContinueColumnScroll := False;
	MarkSearchColumn := False;
	rs := (IUnknown(ComObj.CreateComObject(ComObj.ProgIDToClassID('ADODB.Recordset'))) as ADODB_TLB.Recordset);
	with rs do
	begin
		Open('Select * From foxcode.DBF','Provider=vfpoledb;Data Source=C:\Program Files\Microsoft Visual FoxPro 9\',3,3,Null);
	end;
	DataSource := (IUnknown(rs) as ADODB_TLB.Recordset);
	EndUpdate();
end
460
Does your control supports scrolling by touching the screen

with List1 do
begin
	ColumnAutoResize := False;
	rs := (IUnknown(ComObj.CreateComObject(ComObj.ProgIDToClassID('ADOR.Recordset'))) as ADODB_TLB.Recordset);
	with rs do
	begin
		Open('Orders','Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\Program Files\Exontrol\ExList\Sample\Access\SAMPLE.ACCDB',3,3,Null);
	end;
	DataSource := (IUnknown(rs) as ADODB_TLB.Recordset);
	ContinueColumnScroll := True;
	ScrollBySingleLine := True;
	AutoDrag := Integer(EXLISTLib_TLB.exAutoDragScrollOnShortTouch) Or Integer(EXLISTLib_TLB.exAutoDragScroll);
end
459
How can I enlarge the size of the control's scroll bars, for using on touch screens

with List1 do
begin
	ScrollBars := EXLISTLib_TLB.DisableBoth;
	ScrollWidth := 32;
	ScrollHeight := 32;
	ScrollButtonHeight := 32;
	ScrollButtonWidth := 32;
end
458
Is there a syntax for conditional formatting of items, based on CellState/CellStateChange

// CellStateChanged event - Fired after cell's state is changed.
procedure TForm1.List1CellStateChanged(ASender: TObject; Item : Integer;ColIndex : Integer);
begin
	with List1 do
	begin
		with Items do
		begin
			Caption[Item,OleVariant(2)] := OleVariant(CellState[Item,OleVariant(0)]);
		end;
	end
end;

with List1 do
begin
	BeginUpdate();
	ShowFocusRect := False;
	MarkSearchColumn := False;
	SelBackMode := EXLISTLib_TLB.exTransparent;
	var_ConditionalFormat := ConditionalFormats.Add('%2 != 0',Null);
	with var_ConditionalFormat do
	begin
		Bold := True;
		ForeColor := $ff;
		ApplyTo := EXLISTLib_TLB.exFormatToItems;
	end;
	with (IUnknown(Columns.Add('')) as EXLISTLib_TLB.Column) do
	begin
		Def[EXLISTLib_TLB.exCellHasCheckBox] := OleVariant(True);
		Width := 16;
		AllowSizing := False;
	end;
	Columns.Add('Information');
	(IUnknown(Columns.Add('Hidden')) as EXLISTLib_TLB.Column).Visible := False;
	with Items do
	begin
		Caption[Add(''),OleVariant(1)] := 'This is a bit of text associated';
		h := Add('');
		Caption[h,OleVariant(1)] := 'This is a bit of text associated';
		CellState[h,OleVariant(0)] := 1;
		Caption[Add(''),OleVariant(1)] := 'This is a bit of text associated';
	end;
	EndUpdate();
end
457
How can I display the caption bellow to picture

with List1 do
begin
	BeginUpdate();
	ScrollBySingleLine := True;
	HTMLPicture['p1'] := 'c:\exontrol\images\zipdisk.gif';
	HTMLPicture['p2'] := 'c:\exontrol\images\auction.gif';
	Columns.Add('Default');
	with Items do
	begin
		h := Add('<c><img>p1</img><br><c>your caption1');
		CellSingleLine[h,OleVariant(0)] := EXLISTLib_TLB.exCaptionWordWrap;
		CaptionFormat[h,OleVariant(0)] := EXLISTLib_TLB.exHTML;
		h := Add('<c><img>p2</img><br><c>your caption2');
		CellSingleLine[h,OleVariant(0)] := EXLISTLib_TLB.exCaptionWordWrap;
		CaptionFormat[h,OleVariant(0)] := EXLISTLib_TLB.exHTML;
	end;
	EndUpdate();
end
456
How can I add a vertical padding

with List1 do
begin
	BeginUpdate();
	DrawGridLines := EXLISTLib_TLB.exAllLines;
	with (IUnknown(Columns.Add('Padding')) as EXLISTLib_TLB.Column) do
	begin
		Def[EXLISTLib_TLB.exCellHasCheckBox] := OleVariant(True);
		Def[EXLISTLib_TLB.exCellSingleLine] := OleVariant(False);
		Def[EXLISTLib_TLB.exCellPaddingLeft] := OleVariant(6);
		Def[EXLISTLib_TLB.exCellPaddingRight] := OleVariant(6);
		Def[EXLISTLib_TLB.exCellPaddingTop] := OleVariant(6);
		Def[EXLISTLib_TLB.exCellPaddingBottom] := OleVariant(6);
	end;
	with Items do
	begin
		Add('padding');
		Add('padding');
	end;
	EndUpdate();
end
455
How do you embed HTML options into the anchor click string

// AnchorClick event - Occurs when an anchor element is clicked.
procedure TForm1.List1AnchorClick(ASender: TObject; AnchorID : WideString;Options : WideString);
begin
	with List1 do
	begin
		OutputDebugString( AnchorID );
		OutputDebugString( Options );
	end
end;

with List1 do
begin
	BeginUpdate();
	with Columns do
	begin
		(IUnknown(Add('Car')) as EXLISTLib_TLB.Column).Def[EXLISTLib_TLB.exCaptionFormat] := OleVariant(1);
	end;
	with Items do
	begin
		Add('<a mazda_1;options for 1>Mazda <b>1</b></a>');
		Add('<a mazda_2;options for 2>Mazda <b>2</b></a>');
		Add('<a mazda_3;options for 3a>Mazda <b>3.a</b></a>');
		Add('<a mazda_3;options for 3b>Mazda <b>3.b</b></a>');
	end;
	EndUpdate();
end
454
I have the rows with different background color, and when I select the item it takes the color of the SelBackColor, and therefore is no longer visible behind the color. Is there any option to make the item's color being visible (method 3)

with List1 do
begin
	BeginUpdate();
	VisualAppearance.Add(1,'gBFLBCJwBAEHhEJAEGg4BVEIQAAYAQGKIYBkAKBQAGaAoDDMOQwQwAAxjGKEEwsACEIrjKCRShyCYZRhGcTSBCIZBqEqSZLiEZRQCWIAzATGYBRfIUEgjBM6ExwG78eg' + 
	'BHp/ZpkACIJJAaRjHQdJxGKKMQB9DIhCZpeKhWgkKIJBzOEyBRC4ERBGqNGrsIgLEqWZpnWhaNpWXYTLyBN64LhuK46g53O6wLxvK6hEr2dJ/YBcIAOfghf4NQ7EMRxL' + 
	'C8Mw3BDvYDkOAABAIgI=');
	SelBackColor := $1fffffe;
	ShowFocusRect := False;
	Columns.Add('Items');
	with Items do
	begin
		ItemBackColor[Add('red')] := $ff;
		ItemBackColor[Add('blue')] := $ff0000;
		ItemBackColor[Add('green')] := $ff00;
	end;
	EndUpdate();
end
453
I have the rows with different background color, and when I select the item it takes the color of the SelBackColor, and therefore is no longer visible behind the color. Is there any option to make the item's color being visible (method 2)

with List1 do
begin
	BeginUpdate();
	SelBackMode := EXLISTLib_TLB.exTransparent;
	ShowFocusRect := False;
	Columns.Add('Items');
	with Items do
	begin
		ItemBackColor[Add('red')] := $ff;
		ItemBackColor[Add('blue')] := $ff0000;
		ItemBackColor[Add('green')] := $ff00;
	end;
	EndUpdate();
end
452
I have the rows with different background color, and when I select the item it takes the color of the SelBackColor, and therefore is no longer visible behind the color. Is there any option to make the item's color being visible (method 1)

with List1 do
begin
	BeginUpdate();
	SelBackColor := BackColor;
	SelForeColor := ForeColor;
	ShowFocusRect := True;
	Columns.Add('Items');
	with Items do
	begin
		ItemBackColor[Add('red')] := $ff;
		ItemBackColor[Add('blue')] := $ff0000;
		ItemBackColor[Add('green')] := $ff00;
	end;
	EndUpdate();
end
451
I am using the FormatColumn property, but is it also possible to have a blank field when the value is '0'. I've tried the 'leading zero' flag in the FormatColumn, but that did not work

with List1 do
begin
	(IUnknown(Columns.Add('Currency')) as EXLISTLib_TLB.Column).FormatColumn := 'int(value) != 0 ? (value format `0||3|,`) : ``';
	Items.Add(OleVariant(123456789));
	Items.Add(OleVariant(1234));
	Items.Add(OleVariant(0));
	Items.Add(OleVariant(2345));
end
450
Do you have a VB sample on how to use .FormatColumn to show this number '123456789' like '123,456,789'

with List1 do
begin
	(IUnknown(Columns.Add('Currency')) as EXLISTLib_TLB.Column).FormatColumn := 'value format `0||3|,`';
	Items.Add(OleVariant(123456789));
	Items.Add(OleVariant(1234));
end
449
Is it possible to change the image while do OLE Drag and Drop operations

// OLEStartDrag event - Occurs when the OLEDrag method is called.
procedure TForm1.List1OLEStartDrag(ASender: TObject; Data : IExDataObject;var AllowedEffects : Integer);
begin
	// Data.SetData(Items.FocusItem)
end;

with List1 do
begin
	Columns.Add('Default');
	Items.Add('Item 1');
	Items.Add('Item 2');
	OLEDropMode := EXLISTLib_TLB.exOLEDropManual;
	HTMLPicture['OLEDragDropImage'] := 'C:\Program Files\Exontrol\ExList\Sample\VB\UNICODE\unicode.jpg';
end
448
Is it possible to change the image while do OLE Drag and Drop operations

// OLEStartDrag event - Occurs when the OLEDrag method is called.
procedure TForm1.List1OLEStartDrag(ASender: TObject; Data : IExDataObject;var AllowedEffects : Integer);
begin
	// Data.SetData(Items.FocusItem)
end;

with List1 do
begin
	Columns.Add('Default');
	Items.Add('Item 1');
	Items.Add('Item 2');
	OLEDropMode := EXLISTLib_TLB.exOLEDropManual;
	VisualAppearance.Add(1,'C:\Program Files\Exontrol\ExG2antt\Sample\EBN\xpbselIcon.ebn');
	Background[EXLISTLib_TLB.exDragDropAfter] := $1000000;
	Background[EXLISTLib_TLB.exDragDropBefore] := $ffffff;
end
447
How can copy and paste the selection to Microsoft Word, any OLE compliant application, as a snapshot
with List1 do
begin
	BeginUpdate();
	VisualAppearance.Add(1,'c:\exontrol\images\normal.ebn');
	HTMLPicture['p1'] := 'c:\exontrol\images\card.png';
	HTMLPicture['p2'] := 'c:\exontrol\images\sun.png';
	AutoDrag := EXLISTLib_TLB.exAutoDragCopySnapShot;
	ShowFocusRect := False;
	DefaultItemHeight := 26;
	Columns.Add('Task');
	with Items do
	begin
		CaptionFormat[Add('<img>p1:32</img> Group 1'),OleVariant(0)] := EXLISTLib_TLB.exHTML;
		CaptionFormat[Add('<img>p2:32</img> Group 2'),OleVariant(0)] := EXLISTLib_TLB.exHTML;
	end;
	EndUpdate();
end
446
How can copy and paste the selection to Microsoft Word, any OLE compliant application, as a image

with List1 do
begin
	BeginUpdate();
	HTMLPicture['p1'] := 'c:\exontrol\images\card.png';
	HTMLPicture['p2'] := 'c:\exontrol\images\sun.png';
	HeaderHeight := 24;
	DefaultItemHeight := 48;
	DrawGridLines := EXLISTLib_TLB.GridLinesEnum($fffffffc Or Integer(EXLISTLib_TLB.exVLines));
	GridLineColor := RGB(240,240,240);
	SelBackMode := EXLISTLib_TLB.exTransparent;
	ColumnAutoResize := False;
	ContinueColumnScroll := False;
	rs := (IUnknown(ComObj.CreateComObject(ComObj.ProgIDToClassID('ADOR.Recordset'))) as ADODB_TLB.Recordset);
	with rs do
	begin
		Open('Orders','Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\Program Files\Exontrol\ExList\Sample\Access\SAMPLE.ACCDB',3,3,Null);
	end;
	DataSource := (IUnknown(rs) as ADODB_TLB.Recordset);
	Columns.Item[OleVariant(0)].Def[EXLISTLib_TLB.exCaptionFormat] := OleVariant(1);
	Columns.Item[OleVariant(0)].FormatColumn := 'value + ` <img>p` + (1 + (value mod 3 ) ) + `</img>`';
	Columns.Item[OleVariant(0)].Width := 112;
	AutoDrag := EXLISTLib_TLB.exAutoDragCopyImage;
	SingleSel := False;
	with Items do
	begin
		SelectItem[1] := True;
		SelectItem[2] := True;
		SelectItem[3] := True;
	end;
	EndUpdate();
end
445
How can copy and paste the selection to Microsoft Word, Excel or any OLE compliant application, as a text

with List1 do
begin
	BeginUpdate();
	ColumnAutoResize := False;
	ContinueColumnScroll := False;
	rs := (IUnknown(ComObj.CreateComObject(ComObj.ProgIDToClassID('ADOR.Recordset'))) as ADODB_TLB.Recordset);
	with rs do
	begin
		Open('Orders','Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\Program Files\Exontrol\ExList\Sample\Access\SAMPLE.ACCDB',3,3,Null);
	end;
	DataSource := (IUnknown(rs) as ADODB_TLB.Recordset);
	AutoDrag := EXLISTLib_TLB.exAutoDragCopyText;
	SingleSel := False;
	with Items do
	begin
		SelectItem[1] := True;
		SelectItem[3] := True;
		SelectItem[4] := True;
		SelectItem[5] := True;
	end;
	EndUpdate();
end
444
How can I change the row's position to another, by drag and drop. Is it possible

with List1 do
begin
	BeginUpdate();
	AutoDrag := EXLISTLib_TLB.exAutoDragPosition;
	Columns.Add('Task');
	with Items do
	begin
		Add('Item 1');
		Add('Item 2');
		Add('Item 3');
		Add('Item 4');
	end;
	EndUpdate();
end
443
Does your control support subscript or superscript, in HTML captions

with List1 do
begin
	(IUnknown(Columns.Add('Column')) as EXLISTLib_TLB.Column).Def[EXLISTLib_TLB.exCaptionFormat] := OleVariant(1);
	Items.Add('<sha ;;0>Event <b><font ;6><off -6>2<off 4>3<off 4>1');
end
442
Is there any property I can save and restore automatically the current setting, column position, size, and so on (2)

with List1 do
begin
	BeginUpdate();
	Columns.Add('Column');
	with Items do
	begin
		Add('Item 1');
		Add('Item 2');
		Add('Item 3');
	end;
	Layout := 'Select="0";SingleSort="C0:2";Columns=1';
	EndUpdate();
end
441
Is there any property I can save and restore automatically the current setting, column position, size, and so on (1)

with List1 do
begin
	BeginUpdate();
	Columns.Add('Column');
	with Items do
	begin
		Add('Item 1');
		Add('Item 2');
		Add('Item 3');
	end;
	Layout := 'gBjAAwAAuABmABpABsAB0ABlAByhoAPIAOEPAA9gYABoABQAgUEg0XN4AOcJicKkpujMbjsfkMFk0YhkQgUOjUEl8gjcGO0ok8KMULjEaGMcj08kQAO8oMkTNEtGwAGQ' + 
	'Aqc7gUlhh1ABtAEsk9GpEfhElgVcsMupNlnlonlaAFcr0shUsp8QPEtnVJqJhmcIhUMh0QiU5sYAqMngUSuEMw07k8Qv0SgVRrNEuVflF2jF5x9JyNEm0TjQijemyE0j' + 
	'E3t+YruauoAu4Az1qj9BzRn0UzksSnAA0xDjY6qnAw8OiUQ0dwzN0zWz2t7j8/xURAGNvWH6k8xlEhklhEI0O/6QAgI=';
	EndUpdate();
end
440
Is there any public method to export the selected data

with List1 do
begin
	BeginUpdate();
	with Columns do
	begin
		Add('C1');
		(IUnknown(Add('C2')) as EXLISTLib_TLB.Column).FormatColumn := '1 index `A-Z`';
		(IUnknown(Add('C3')) as EXLISTLib_TLB.Column).FormatColumn := '100 index ``';
	end;
	with Items do
	begin
		Add('Item 1');
		SelectItem[Add('Item 2')] := True;
		Add('Item 3');
	end;
	EndUpdate();
	OutputDebugString( 'Export CSV Selected Items Only:' );
	OutputDebugString( Export('','sel') );
end
439
How can I change the visual aspect of the links in the sort bar

with List1 do
begin
	BeginUpdate();
	ColumnAutoResize := False;
	rs := (IUnknown(ComObj.CreateComObject(ComObj.ProgIDToClassID('ADOR.Recordset'))) as ADODB_TLB.Recordset);
	with rs do
	begin
		Open('Orders','Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\Program Files\Exontrol\ExList\Sample\Access\SAMPLE.ACCDB',3,3,Null);
	end;
	DataSource := (IUnknown(rs) as ADODB_TLB.Recordset);
	SortBarHeight := 24;
	HeaderHeight := 24;
	BackColorSortBar := RGB(240,240,240);
	BackColorSortBarCaption := BackColor;
	VisualAppearance.Add(1,'gBFLBCJwBAEHhEJAEGg4BdsIQAAYAQGKIYBkAKBQAGaAoDDgNw0QwAAxjMK0EwsACEIrjKCRShyCYZRhGcTSBCIZBqEqSZLiEZRQiiCYsS5GQBSFDcOwHGyQYDkCQpAA' + 
	'WL4tCyMc7QHKAWhrEAbJjgQYJUh+TQAAZCIJRXRQAL/K6rKwnSCQIgkUBpGKdBynEYoYxAfyESCJWyIahWAwoQjUMB1HLQAAxC5kKbkIxyBABFBdVjVeBYG78Bz+ABjE' + 
	'ovbAMEwPBqAMwmIAZDheA4FR4AGhTXKcbxrFaXZSzKckPRoADSZq1Sg5LjDJI2ABqU6ABqNLZtJKsZS4apABrWeZ3Q7QMLdFTwA4PH6EZhxXAYbTVeaPZjQIBAgI');
	SortBarVisible := True;
	SortBarCaption := 'Drag a <b>column</b> header here to group by that column.';
	with Columns.Item[OleVariant(1)] do
	begin
		Alignment := EXLISTLib_TLB.CenterAlignment;
		Def[EXLISTLib_TLB.exCellBackColor] := OleVariant(15790320);
		SortOrder := True;
	end;
	with Columns.Item[OleVariant(5)] do
	begin
		Alignment := EXLISTLib_TLB.CenterAlignment;
		Def[EXLISTLib_TLB.exCellBackColor] := OleVariant(16119285);
		SortOrder := True;
	end;
	Background[EXLISTLib_TLB.exSortBarLinkColor] := $1000000;
	EndUpdate();
end
438
How can I have a case-insensitive filter (exFilterDoCaseSensitive flag is not set)

with List1 do
begin
	BeginUpdate();
	MarkSearchColumn := False;
	with Columns do
	begin
		with (IUnknown(Add('Car')) as EXLISTLib_TLB.Column) do
		begin
			DisplayFilterButton := True;
			FilterType := EXLISTLib_TLB.exFilter;
			Filter := 'MAZDA';
		end;
		with (IUnknown(Add('Equipment')) as EXLISTLib_TLB.Column) do
		begin
			DisplayFilterButton := True;
			DisplayFilterPattern := False;
			CustomFilter := 'Air Bag||*Air Bag*|||Air condition||*Air condition*|||ABS||*ABS*|||ESP||*ESP*';
			FilterType := EXLISTLib_TLB.exPattern;
			Filter := 'AIR BAG';
		end;
	end;
	with Items do
	begin
		Caption[Add('Mazda'),OleVariant(1)] := 'Air Bag';
		Caption[Add('Toyota'),OleVariant(1)] := 'Air Bag,Air condition';
		Caption[Add('Ford'),OleVariant(1)] := 'Air condition';
		Caption[Add('Nissan'),OleVariant(1)] := 'Air Bag,ABS,ESP';
		Caption[Add('Mazda'),OleVariant(1)] := 'Air Bag, ABS,ESP';
		Caption[Add('Mazda'),OleVariant(1)] := 'ABS,ESP';
	end;
	ApplyFilter();
	EndUpdate();
end
437
How can I have a case-sensitive filter

with List1 do
begin
	BeginUpdate();
	MarkSearchColumn := False;
	with Columns do
	begin
		with (IUnknown(Add('Car')) as EXLISTLib_TLB.Column) do
		begin
			DisplayFilterButton := True;
			FilterType := Integer(EXLISTLib_TLB.exFilterDoCaseSensitive) Or Integer(EXLISTLib_TLB.exFilter);
			Filter := 'Mazda';
		end;
		with (IUnknown(Add('Equipment')) as EXLISTLib_TLB.Column) do
		begin
			DisplayFilterButton := True;
			DisplayFilterPattern := False;
			CustomFilter := 'Air Bag||*Air Bag*|||Air condition||*Air condition*|||ABS||*ABS*|||ESP||*ESP*';
			FilterType := Integer(EXLISTLib_TLB.exFilterDoCaseSensitive) Or Integer(EXLISTLib_TLB.exPattern);
			Filter := 'Air Bag';
		end;
	end;
	with Items do
	begin
		Caption[Add('Mazda'),OleVariant(1)] := 'Air Bag';
		Caption[Add('Toyota'),OleVariant(1)] := 'Air Bag,Air condition';
		Caption[Add('Ford'),OleVariant(1)] := 'Air condition';
		Caption[Add('Nissan'),OleVariant(1)] := 'Air Bag,ABS,ESP';
		Caption[Add('Mazda'),OleVariant(1)] := 'Air Bag, ABS,ESP';
		Caption[Add('Mazda'),OleVariant(1)] := 'ABS,ESP';
	end;
	ApplyFilter();
	EndUpdate();
end
436
I have several columns, but noticed that the filter is using AND between columns, but I need OR clause for filtering. Is it possible

with List1 do
begin
	BeginUpdate();
	with (IUnknown(Columns.Add('Item')) as EXLISTLib_TLB.Column) do
	begin
		DisplayFilterButton := True;
		DisplayFilterPattern := False;
		Filter := 'Child 1';
		FilterType := EXLISTLib_TLB.exFilter;
	end;
	with (IUnknown(Columns.Add('Date')) as EXLISTLib_TLB.Column) do
	begin
		DisplayFilterButton := True;
		DisplayFilterPattern := False;
		DisplayFilterDate := True;
		FilterList := Integer(EXLISTLib_TLB.exShowExclude) Or Integer(EXLISTLib_TLB.exShowFocusItem) Or Integer(EXLISTLib_TLB.exShowCheckBox) Or Integer(EXLISTLib_TLB.exNoItems);
		Filter := '12/28/2010';
		FilterType := EXLISTLib_TLB.exDate;
	end;
	FilterCriteria := '%0 or %1';
	Description[EXLISTLib_TLB.exFilterBarOr] := '<font ;18><fgcolor=FF0000>or</fgcolor></font>';
	Description[EXLISTLib_TLB.exFilterBarAnd] := '<font ;18><fgcolor=FF0000>and</fgcolor></font>';
	with Items do
	begin
		h := Add('Root 1');
		Caption[Add('Child 1'),OleVariant(1)] := '12/27/2010';
		Caption[Add('Child 2'),OleVariant(1)] := '12/28/2010';
		h := Add('Root 2');
		Caption[Add('Child 1'),OleVariant(1)] := '12/29/2010';
		Caption[Add('Child 2'),OleVariant(1)] := '12/30/2010';
	end;
	ApplyFilter();
	EndUpdate();
end
435
Is it possible exclude the dates being selected in the drop down filter window

with List1 do
begin
	BeginUpdate();
	with (IUnknown(Columns.Add('Date')) as EXLISTLib_TLB.Column) do
	begin
		SortType := EXLISTLib_TLB.SortDate;
		DisplayFilterButton := True;
		DisplayFilterPattern := False;
		DisplayFilterDate := True;
		FilterList := Integer(EXLISTLib_TLB.exShowExclude) Or Integer(EXLISTLib_TLB.exShowFocusItem) Or Integer(EXLISTLib_TLB.exShowCheckBox) Or Integer(EXLISTLib_TLB.exNoItems);
	end;
	with Items do
	begin
		Add('12/27/2010');
		Add('12/28/2010');
		Add('12/29/2010');
		Add('12/30/2010');
		Add('12/31/2010');
	end;
	EndUpdate();
end
434
How can I display a calendar control inside the drop down filter window

with List1 do
begin
	BeginUpdate();
	with (IUnknown(Columns.Add('Date')) as EXLISTLib_TLB.Column) do
	begin
		SortType := EXLISTLib_TLB.SortDate;
		DisplayFilterButton := True;
		DisplayFilterPattern := False;
		DisplayFilterDate := True;
		FilterList := Integer(EXLISTLib_TLB.exShowFocusItem) Or Integer(EXLISTLib_TLB.exShowCheckBox) Or Integer(EXLISTLib_TLB.exNoItems);
	end;
	with Items do
	begin
		Add('12/27/2010');
		Add('12/28/2010');
		Add('12/29/2010');
		Add('12/30/2010');
		Add('12/31/2010');
	end;
	EndUpdate();
end
433
Is it possible to include the dates as checkb-boxes in the drop down filter window

with List1 do
begin
	BeginUpdate();
	with (IUnknown(Columns.Add('Dates')) as EXLISTLib_TLB.Column) do
	begin
		SortType := EXLISTLib_TLB.SortDate;
		DisplayFilterButton := True;
		DisplayFilterPattern := True;
		DisplayFilterDate := True;
		FilterList := Integer(EXLISTLib_TLB.exShowFocusItem) Or Integer(EXLISTLib_TLB.exShowCheckBox);
		Filter := 'to 12/27/2010';
		FilterType := EXLISTLib_TLB.exDate;
	end;
	with Items do
	begin
		Add('12/27/2010');
		Add('12/28/2010');
		Add('12/29/2010');
		Add('12/30/2010');
		Add('12/31/2010');
	end;
	ApplyFilter();
	EndUpdate();
end
432
How can I filter items for dates before a specified date

with List1 do
begin
	BeginUpdate();
	with (IUnknown(Columns.Add('Dates')) as EXLISTLib_TLB.Column) do
	begin
		SortType := EXLISTLib_TLB.SortDate;
		DisplayFilterButton := True;
		DisplayFilterPattern := True;
		DisplayFilterDate := True;
		FilterList := Integer(EXLISTLib_TLB.exShowFocusItem) Or Integer(EXLISTLib_TLB.exNoItems);
		Filter := 'to 12/27/2010';
		FilterType := EXLISTLib_TLB.exDate;
	end;
	with Items do
	begin
		Add('12/27/2010');
		Add('12/28/2010');
		Add('12/29/2010');
		Add('12/30/2010');
		Add('12/31/2010');
	end;
	ApplyFilter();
	EndUpdate();
end
431
Is it possible to filter dates

with List1 do
begin
	BeginUpdate();
	with (IUnknown(Columns.Add('Dates')) as EXLISTLib_TLB.Column) do
	begin
		SortType := EXLISTLib_TLB.SortDate;
		DisplayFilterButton := True;
		DisplayFilterPattern := True;
		DisplayFilterDate := True;
		FilterList := Integer(EXLISTLib_TLB.exShowFocusItem) Or Integer(EXLISTLib_TLB.exNoItems);
	end;
	with Items do
	begin
		Add('12/27/2010');
		Add('12/28/2010');
		Add('12/29/2010');
		Add('12/30/2010');
		Add('12/31/2010');
	end;
	EndUpdate();
end
430
Is it possible to change the Exclude field name to something different, in the drop down filter window

with List1 do
begin
	BeginUpdate();
	Description[EXLISTLib_TLB.exFilterBarExclude] := 'Leaving out';
	with (IUnknown(Columns.Add('Items')) as EXLISTLib_TLB.Column) do
	begin
		DisplayFilterButton := True;
		DisplayFilterPattern := False;
		FilterList := Integer(EXLISTLib_TLB.exShowExclude) Or Integer(EXLISTLib_TLB.exShowFocusItem) Or Integer(EXLISTLib_TLB.exShowCheckBox);
	end;
	with Items do
	begin
		h := Add('Root 1');
		Add('Child 1');
		Add('Child 2');
		h := Add('Root 2');
		Add('Child 1');
	end;
	EndUpdate();
end
429
How can I display the Exclude field in the drop down filter window

with List1 do
begin
	BeginUpdate();
	with (IUnknown(Columns.Add('Items')) as EXLISTLib_TLB.Column) do
	begin
		DisplayFilterButton := True;
		DisplayFilterPattern := False;
		FilterList := Integer(EXLISTLib_TLB.exShowExclude) Or Integer(EXLISTLib_TLB.exShowFocusItem) Or Integer(EXLISTLib_TLB.exShowCheckBox);
	end;
	with Items do
	begin
		h := Add('Root 1');
		Add('Child 1');
		Add('Child 2');
		h := Add('Root 2');
		Add('Child 1');
	end;
	EndUpdate();
end
428
Is it possible to show and ensure the focused item from the control, in the drop down filter window

with List1 do
begin
	BeginUpdate();
	with (IUnknown(Columns.Add('Items')) as EXLISTLib_TLB.Column) do
	begin
		DisplayFilterButton := True;
		DisplayFilterPattern := False;
		FilterList := Integer(EXLISTLib_TLB.exShowFocusItem) Or Integer(EXLISTLib_TLB.exShowCheckBox);
	end;
	with Items do
	begin
		h := Add('Root 1');
		Add('Child 1');
		Add('Child 2');
		h := Add('Root 2');
		Add('Child 1');
		SelectItem[Add('Child 2')] := True;
	end;
	EndUpdate();
end
427
Is it possible to show only blanks items with no listed items from the control

with List1 do
begin
	BeginUpdate();
	with (IUnknown(Columns.Add('Items')) as EXLISTLib_TLB.Column) do
	begin
		DisplayFilterButton := True;
		DisplayFilterPattern := False;
		FilterList := Integer(EXLISTLib_TLB.exShowBlanks) Or Integer(EXLISTLib_TLB.exNoItems);
	end;
	with Items do
	begin
		h := Add('Root 1');
		Add('Child 1');
		Add('Child 2');
		h := Add('Root 2');
		Add('Child 1');
		Add('Child 2');
	end;
	EndUpdate();
end
426
How can I include the blanks items in the drop down filter window

with List1 do
begin
	BeginUpdate();
	with (IUnknown(Columns.Add('Items')) as EXLISTLib_TLB.Column) do
	begin
		DisplayFilterButton := True;
		DisplayFilterPattern := False;
		FilterList := Integer(EXLISTLib_TLB.exShowBlanks) Or Integer(EXLISTLib_TLB.exShowCheckBox);
	end;
	with Items do
	begin
		h := Add('Root 1');
		Add('Child 1');
		Add('Child 2');
		h := Add('Root 2');
		Add('Child 1');
		Add('Child 2');
	end;
	EndUpdate();
end
425
How can I select multiple items in the drop down filter window, using check-boxes

with List1 do
begin
	BeginUpdate();
	with (IUnknown(Columns.Add('Items')) as EXLISTLib_TLB.Column) do
	begin
		DisplayFilterButton := True;
		DisplayFilterPattern := False;
		FilterList := EXLISTLib_TLB.exShowCheckBox;
	end;
	with Items do
	begin
		h := Add('Root 1');
		Add('Child 1');
		Add('Child 2');
		h := Add('Root 2');
		Add('Child 1');
		Add('Child 2');
	end;
	EndUpdate();
end
424
Is it possible to allow a single item being selected in the drop down filter window

with List1 do
begin
	BeginUpdate();
	with (IUnknown(Columns.Add('Items')) as EXLISTLib_TLB.Column) do
	begin
		DisplayFilterButton := True;
		DisplayFilterPattern := False;
		FilterList := EXLISTLib_TLB.exSingleSel;
	end;
	with Items do
	begin
		h := Add('Root 1');
		Add('Child 1');
		Add('Child 2');
		h := Add('Root 2');
		Add('Child 1');
		Add('Child 2');
	end;
	EndUpdate();
end
423
How can I display no (All) item in the drop down filter window

with List1 do
begin
	BeginUpdate();
	Description[EXLISTLib_TLB.exFilterBarAll] := '';
	with (IUnknown(Columns.Add('Items')) as EXLISTLib_TLB.Column) do
	begin
		DisplayFilterButton := True;
		DisplayFilterPattern := True;
		FilterList := EXLISTLib_TLB.exNoItems;
	end;
	with Items do
	begin
		h := Add('Root 1');
		Add('Child 1');
		Add('Child 2');
		h := Add('Root 2');
		Add('Child 1');
		Add('Child 2');
	end;
	EndUpdate();
end
422
Is it possible to display no items in the drop down filter window, so only the pattern is visible

with List1 do
begin
	BeginUpdate();
	with (IUnknown(Columns.Add('Items')) as EXLISTLib_TLB.Column) do
	begin
		DisplayFilterButton := True;
		DisplayFilterPattern := True;
		FilterList := EXLISTLib_TLB.exNoItems;
	end;
	with Items do
	begin
		h := Add('Root 1');
		Add('Child 1');
		Add('Child 2');
		h := Add('Root 2');
		Add('Child 1');
		Add('Child 2');
	end;
	EndUpdate();
end
421
How can I sort the value gets listed in the drop down filter window

with List1 do
begin
	MarkSearchColumn := False;
	Description[EXLISTLib_TLB.exFilterBarAll] := '';
	Description[EXLISTLib_TLB.exFilterBarBlanks] := '';
	Description[EXLISTLib_TLB.exFilterBarNonBlanks] := '';
	with (IUnknown(Columns.Add('P1')) as EXLISTLib_TLB.Column) do
	begin
		DisplayFilterButton := True;
		DisplayFilterPattern := False;
		FilterList := EXLISTLib_TLB.exSortItemsDesc;
	end;
	with (IUnknown(Columns.Add('P2')) as EXLISTLib_TLB.Column) do
	begin
		DisplayFilterButton := True;
		DisplayFilterPattern := False;
		FilterList := EXLISTLib_TLB.exSortItemsAsc;
	end;
	with Items do
	begin
		h := Add('Z3');
		Caption[h,OleVariant(1)] := 'C';
		Caption[Add('Z1'),OleVariant(1)] := 'B';
		Caption[Add('Z2'),OleVariant(1)] := 'A';
	end;
end
420
How can I add or change the padding (spaces) for captions in the control's header

with List1 do
begin
	BeginUpdate();
	(IUnknown(Columns.Add('Padding-Left')) as EXLISTLib_TLB.Column).Def[EXLISTLib_TLB.exHeaderPaddingLeft] := OleVariant(18);
	with (IUnknown(Columns.Add('Padding-Right')) as EXLISTLib_TLB.Column) do
	begin
		Def[EXLISTLib_TLB.exHeaderPaddingRight] := OleVariant(18);
		HeaderAlignment := EXLISTLib_TLB.RightAlignment;
	end;
	EndUpdate();
end
419
Do you have any plans to add cell spacing and cell padding to the cells

with List1 do
begin
	BeginUpdate();
	DrawGridLines := EXLISTLib_TLB.GridLinesEnum($fffffffc Or Integer(EXLISTLib_TLB.exVLines));
	with (IUnknown(Columns.Add('Padding-Left')) as EXLISTLib_TLB.Column) do
	begin
		Def[EXLISTLib_TLB.exCellHasCheckBox] := OleVariant(True);
		Def[EXLISTLib_TLB.exCellPaddingLeft] := OleVariant(18);
	end;
	(IUnknown(Columns.Add('No-Padding')) as EXLISTLib_TLB.Column).Def[EXLISTLib_TLB.exCellHasCheckBox] := OleVariant(True);
	(IUnknown(Columns.Add('Empty')) as EXLISTLib_TLB.Column).Position := 0;
	with Items do
	begin
		Caption[Add('Item A.1'),OleVariant(1)] := 'Item A.2';
		Caption[Add('Item B.1'),OleVariant(1)] := 'Item B.2';
		Caption[Add('Item C.1'),OleVariant(1)] := 'Item C.2';
	end;
	EndUpdate();
end
418
Is it possible display numbers in the same format no matter of regional settings in the control panel

with List1 do
begin
	BeginUpdate();
	(IUnknown(Columns.Add('Def')) as EXLISTLib_TLB.Column).Def[EXLISTLib_TLB.exCaptionFormat] := OleVariant(1);
	with Items do
	begin
		h := Add(OleVariant(100000.27));
		FormatCell[h,OleVariant(0)] := '(value format '''') +  '' <fgcolor=808080>(default positive)''';
		h := Add(OleVariant(100000.27));
		FormatCell[h,OleVariant(0)] := '(value format ''2|.|3|,|1|1'')';
		h := Add(OleVariant(-100000.27));
		FormatCell[h,OleVariant(0)] := '(value format '''') +  '' <fgcolor=808080>(default negative)''';
		h := Add(OleVariant(-100000.27));
		FormatCell[h,OleVariant(0)] := '(value format ''2|.|3|,|1|1'')';
	end;
	EndUpdate();
end
417
Is it possible to add a 0 for numbers less than 1 instead .7 to show 0.8

with List1 do
begin
	BeginUpdate();
	(IUnknown(Columns.Add('Def')) as EXLISTLib_TLB.Column).Def[EXLISTLib_TLB.exCaptionFormat] := OleVariant(1);
	with Items do
	begin
		h := Add(OleVariant(0.27));
		FormatCell[h,OleVariant(0)] := '(value format '''') +  '' <fgcolor=808080>(default)''';
		h := Add(OleVariant(0.27));
		FormatCell[h,OleVariant(0)] := '(value format ''|||||0'') +  '' <fgcolor=808080>(Display no leading zeros)''';
	end;
	EndUpdate();
end
416
How can I specify the format for negative numbers

with List1 do
begin
	BeginUpdate();
	(IUnknown(Columns.Add('Def')) as EXLISTLib_TLB.Column).Def[EXLISTLib_TLB.exCaptionFormat] := OleVariant(1);
	with Items do
	begin
		h := Add(OleVariant(-100000.27));
		FormatCell[h,OleVariant(0)] := '(value format '''') +  '' <fgcolor=808080>(default)''';
		h := Add(OleVariant(-100000.27));
		FormatCell[h,OleVariant(0)] := '(value format ''||||1'') +  '' <fgcolor=808080>(Negative sign, number; for example, -1.1)''';
	end;
	EndUpdate();
end
415
Is it possible to change the grouping character when display numbers

with List1 do
begin
	BeginUpdate();
	(IUnknown(Columns.Add('Def')) as EXLISTLib_TLB.Column).Def[EXLISTLib_TLB.exCaptionFormat] := OleVariant(1);
	with Items do
	begin
		h := Add(OleVariant(100000.27));
		FormatCell[h,OleVariant(0)] := '(value format '''') +  '' <fgcolor=808080>(default)''';
		h := Add(OleVariant(100000.27));
		FormatCell[h,OleVariant(0)] := '(value format ''|||-'') +  '' <fgcolor=808080>(grouping character is -)''';
	end;
	EndUpdate();
end
414
How can I display numbers with 2 digits in each group

with List1 do
begin
	BeginUpdate();
	(IUnknown(Columns.Add('Def')) as EXLISTLib_TLB.Column).Def[EXLISTLib_TLB.exCaptionFormat] := OleVariant(1);
	with Items do
	begin
		h := Add(OleVariant(100000.27));
		FormatCell[h,OleVariant(0)] := '(value format '''') +  '' <fgcolor=808080>(default)''';
		h := Add(OleVariant(100000.27));
		FormatCell[h,OleVariant(0)] := '(value format ''||2'') +  '' <fgcolor=808080>(grouping by 2 digits)''';
	end;
	EndUpdate();
end
413
How can I display my numbers using a different decimal separator

with List1 do
begin
	BeginUpdate();
	(IUnknown(Columns.Add('Def')) as EXLISTLib_TLB.Column).Def[EXLISTLib_TLB.exCaptionFormat] := OleVariant(1);
	with Items do
	begin
		h := Add(OleVariant(100.27));
		FormatCell[h,OleVariant(0)] := '(value format '''') +  '' <fgcolor=808080>(default)''';
		h := Add(OleVariant(100.27));
		FormatCell[h,OleVariant(0)] := '(value format ''|;'') +  '' <fgcolor=808080>(decimal separator is <b>;</b>)''';
	end;
	EndUpdate();
end
412
Is it possible to display the numbers using 3 (three) digits

with List1 do
begin
	BeginUpdate();
	(IUnknown(Columns.Add('Def')) as EXLISTLib_TLB.Column).Def[EXLISTLib_TLB.exCaptionFormat] := OleVariant(1);
	with Items do
	begin
		h := Add(OleVariant(100.27));
		FormatCell[h,OleVariant(0)] := '(value format '''') +  '' <fgcolor=808080>(default)''';
		h := Add(OleVariant(100.27));
		FormatCell[h,OleVariant(0)] := '(value format ''3'') +  '' <fgcolor=808080>(3 digits)''';
		h := Add(OleVariant(100.27));
		FormatCell[h,OleVariant(0)] := '(value format 2) +  ''  <fgcolor=808080>(2 digits)''';
		h := Add(OleVariant(100.27));
		FormatCell[h,OleVariant(0)] := '(value format 1) +  '' <fgcolor=808080>(1 digit)''';
	end;
	EndUpdate();
end
411
Is it possible to format numbers

with List1 do
begin
	BeginUpdate();
	MarkSearchColumn := False;
	SelBackColor := BackColor;
	SelForeColor := ForeColor;
	ShowFocusRect := True;
	with Columns do
	begin
		Add('Name');
		with (IUnknown(Add('A')) as EXLISTLib_TLB.Column) do
		begin
			SortType := EXLISTLib_TLB.SortNumeric;
			AllowSizing := False;
			Width := 36;
			FormatColumn := 'len(value) ? value + '' +''';
		end;
		with (IUnknown(Add('B')) as EXLISTLib_TLB.Column) do
		begin
			SortType := EXLISTLib_TLB.SortNumeric;
			AllowSizing := False;
			Width := 36;
			FormatColumn := 'len(value) ? value + '' +''';
		end;
		with (IUnknown(Add('C')) as EXLISTLib_TLB.Column) do
		begin
			SortType := EXLISTLib_TLB.SortNumeric;
			AllowSizing := False;
			Width := 36;
			FormatColumn := 'len(value) ? value + '' =''';
		end;
		with (IUnknown(Add('A+B+C')) as EXLISTLib_TLB.Column) do
		begin
			SortType := EXLISTLib_TLB.SortNumeric;
			Width := 64;
			ComputedField := 'dbl(%1)+dbl(%2)+dbl(%3)';
			FormatColumn := 'type(value) in (0,1) ? ''null'' : ( dbl(value)<0 ? ''<fgcolor=FF0000>''+ (value format ''2|.|3|,|1'' ) : (dbl(value)>0 ? ''<fgcolor=000' + 
	'0FF>+''+(value format ''2|.|3|,'' ): ''0.00'') )';
			Def[EXLISTLib_TLB.exCaptionFormat] := OleVariant(1);
		end;
	end;
	with Items do
	begin
		h := Add('Item');
		CaptionFormat[h,OleVariant(4)] := EXLISTLib_TLB.exComputedField;
		h := Add('Item 1');
		Caption[h,OleVariant(1)] := OleVariant(7);
		Caption[h,OleVariant(2)] := OleVariant(3);
		Caption[h,OleVariant(3)] := OleVariant(1);
		h := Add('Item 2');
		Caption[h,OleVariant(1)] := OleVariant(-2);
		Caption[h,OleVariant(2)] := OleVariant(-2);
		Caption[h,OleVariant(3)] := OleVariant(-4);
		h := Add('Item 3');
		Caption[h,OleVariant(1)] := OleVariant(2);
		Caption[h,OleVariant(2)] := OleVariant(2);
		Caption[h,OleVariant(3)] := OleVariant(-4);
	end;
	EndUpdate();
end
410
Is it possible background color displayed when the mouse passes over an item

with List1 do
begin
	BeginUpdate();
	Columns.Add('Def');
	HotBackColor := RGB(0,0,128);
	HotForeColor := RGB(255,255,255);
	with Items do
	begin
		Add('Item A');
		Add('Item B');
		Add('Item C');
	end;
	EndUpdate();
end
409
Is it possible to specify the cell's value but still want to display some formatted text instead the value

with List1 do
begin
	BeginUpdate();
	MarkSearchColumn := False;
	with Columns do
	begin
		Add('Name');
		with (IUnknown(Add('Values')) as EXLISTLib_TLB.Column) do
		begin
			SortType := EXLISTLib_TLB.SortNumeric;
			AllowSizing := False;
			Width := 64;
			FormatColumn := '((0:=dbl(value)) < 10? ''<fgcolor=808080><font ;7>'' :''<b>'') + currency(=:0)';
			Def[EXLISTLib_TLB.exCaptionFormat] := OleVariant(1);
		end;
	end;
	with Items do
	begin
		FormatCell[Add('Item A'),OleVariant(1)] := '`<none>`';
		Caption[Add('Item 1'),OleVariant(1)] := OleVariant(10);
		Caption[Add('Item 2'),OleVariant(1)] := OleVariant(15);
		Caption[Add('Item 3'),OleVariant(1)] := OleVariant(25);
	end;
	EndUpdate();
end
408
I am using the FormatColumn to display the current currency, but would like hide some values. Is it possible

with List1 do
begin
	BeginUpdate();
	MarkSearchColumn := False;
	with Columns do
	begin
		Add('Name');
		with (IUnknown(Add('Values')) as EXLISTLib_TLB.Column) do
		begin
			SortType := EXLISTLib_TLB.SortNumeric;
			AllowSizing := False;
			Width := 64;
			FormatColumn := '((0:=dbl(value)) < 10? ''<fgcolor=808080><font ;7>'' :''<b>'') + currency(=:0)';
			Def[EXLISTLib_TLB.exCaptionFormat] := OleVariant(1);
		end;
	end;
	with Items do
	begin
		FormatCell[Add('Item A'),OleVariant(1)] := ' ';
		Caption[Add('Item 1'),OleVariant(1)] := OleVariant(10);
		Caption[Add('Item 2'),OleVariant(1)] := OleVariant(15);
		Caption[Add('Item 3'),OleVariant(1)] := OleVariant(25);
	end;
	EndUpdate();
end
407
I am using the FormatColumn to format my columns. Is it possible to ignore the SelForeColor, so the foreground color for selected items does not override my settings

// SelectionChanged event - Fired after a new item is selected.
procedure TForm1.List1SelectionChanged(ASender: TObject; );
begin
	with List1 do
	begin
		with Items do
		begin
			ClearItemBackColor(-1);
			ItemBackColor[SelectedItem[0]] := $ffff80;
		end;
	end
end;

with List1 do
begin
	BeginUpdate();
	MarkSearchColumn := False;
	SelForeColor := ForeColor;
	SelBackColor := BackColor;
	ShowFocusRect := False;
	with Columns do
	begin
		with (IUnknown(Add('Format')) as EXLISTLib_TLB.Column) do
		begin
			FormatColumn := 'type(value) in (0,1) ? ''null'' : ( dbl(value)<0 ? ''<fgcolor=FF0000>''+ (value format ''2|.|3|,|1'' ) : (dbl(value)>0 ? ''<fgcolor=000' + 
	'0FF>+''+(value format ''2|.|3|,'' ): ''0.00'') )';
			Def[EXLISTLib_TLB.exCaptionFormat] := OleVariant(1);
		end;
	end;
	with Items do
	begin
		Add(OleVariant(10));
		Add(OleVariant(-8));
	end;
	EndUpdate();
end
406
Is it possible to change the height for all items at once

with List1 do
begin
	BeginUpdate();
	Columns.Add('Items');
	with Items do
	begin
		Add('Item 1');
		Add('Item 2');
		Add('Item 3');
		Add('Item 4');
	end;
	EndUpdate();
	DefaultItemHeight := 12;
	Items.ItemHeight[-1] := 12;
end
405
How can I change the shape of the line to be shown when user drag and drop data over the control

// OLEStartDrag event - Occurs when the OLEDrag method is called.
procedure TForm1.List1OLEStartDrag(ASender: TObject; Data : IExDataObject;var AllowedEffects : Integer);
begin
	// Data.SetData("data to be dragged")
end;

with List1 do
begin
	OLEDropMode := EXLISTLib_TLB.exOLEDropManual;
	VisualAppearance.Add(1,'C:\Program Files\Exontrol\ExList\Sample\VB\DragDrop\insert_bottom.ebn');
	Background[EXLISTLib_TLB.exListOLEDropPosition] := $1000000;
	Columns.Add('Default');
	with Items do
	begin
		Add('Item 1');
		Add('Item 2');
	end;
end
404
How can I highlight the item from cursor when the user drag and drop data over the control

// OLEStartDrag event - Occurs when the OLEDrag method is called.
procedure TForm1.List1OLEStartDrag(ASender: TObject; Data : IExDataObject;var AllowedEffects : Integer);
begin
	// Data.SetData("data to be dragged")
end;

with List1 do
begin
	OLEDropMode := EXLISTLib_TLB.exOLEDropManual;
	Background[EXLISTLib_TLB.exListOLEDropPosition] := $1;
	Columns.Add('Default');
	with Items do
	begin
		Add('Item 1');
		Add('Item 2');
	end;
end
403
How can I start drag and drop items

// OLEStartDrag event - Occurs when the OLEDrag method is called.
procedure TForm1.List1OLEStartDrag(ASender: TObject; Data : IExDataObject;var AllowedEffects : Integer);
begin
	// Data.SetData("to be carried by drag and drop")
	with List1 do
	begin
		AllowedEffects := 1;
	end
end;

with List1 do
begin
	BeginUpdate();
	OLEDropMode := EXLISTLib_TLB.exOLEDropManual;
	Columns.Add('Default');
	with Items do
	begin
		Add('Item 1');
		Add('Item 2');
	end;
	EndUpdate();
end
402
When I'm trying to show string with "line break" character (vbCrLF) in a textbox, it shows 2 squares. Is there any way to hide these squares

with List1 do
begin
	with Columns do
	begin
		Add('Value');
		with (IUnknown(Add('CellSingleLine = False')) as EXLISTLib_TLB.Column) do
		begin
			ComputedField := '%0';
			Def[EXLISTLib_TLB.exCellSingleLine] := OleVariant(False);
		end;
		with (IUnknown(Add('FormatColumn/replace CRLF')) as EXLISTLib_TLB.Column) do
		begin
			ComputedField := '%0';
			FormatColumn := 'value replace `\r\n` with ``';
		end;
		with (IUnknown(Add('FormatColumn/replace TAB,CRLF')) as EXLISTLib_TLB.Column) do
		begin
			ComputedField := '%0';
			FormatColumn := '(value replace `\t` with ``) replace `\r\n` with ``';
		end;
	end;
	with Items do
	begin
		Add('a\ta\r\nb\tb');
	end;
end
401
The Column.Alignment property does not seem to work for cells with images in them. What can be done

with List1 do
begin
	BeginUpdate();
	Images('gBJJgBAIDAAGAAEAAQhYAf8Pf4hh0QihCJo2AEZjQAjEZFEaIEaEEaAIAkcbk0olUrlktl0vmExmUzmk1m03nE5nU7nk9n0/oFBoVDolFo1HpFJpVLplNp1PqFRqVTql' + 
	'Vq1XrFZrVbrldr1fsFhsVjslls1ntFptVrtltt1vuFxuVzul1u13vF5vV7vl9v1/wGBwWDwmFw2HxGJxWLxmNx0xiFdyOTh8Tf9ZymXx+QytcyNgz8r0OblWjyWds+m0' + 
	'ka1Vf1ta1+r1mos2xrG2xeZ0+a0W0qOx3GO4NV3WeyvD2XJ5XL5nN51aiw+lfSj0gkUkAEllHanHI5j/cHg8EZf7w8vl8j4f/qfEZeB09/vjLAB30+kZQAP/P5/H6/yN' + 
	'AOAEAwCjMBwFAEDwJBMDwLBYAP2/8Hv8/gAGAD8LQs9w/nhDY/oygIA=');
	DrawGridLines := EXLISTLib_TLB.exAllLines;
	HeaderHeight := 24;
	DefaultItemHeight := 24;
	with (IUnknown(Columns.Add('Image')) as EXLISTLib_TLB.Column) do
	begin
		AllowSizing := False;
		Width := 32;
		HTMLCaption := '<img>1</img>';
		HeaderAlignment := EXLISTLib_TLB.CenterAlignment;
		Alignment := EXLISTLib_TLB.CenterAlignment;
		Def[EXLISTLib_TLB.exCaptionFormat] := OleVariant(1);
	end;
	Columns.Add('Rest');
	with Items do
	begin
		Add('<img>1</img>');
		Add('<img>2</img>');
		Add('<img>3</img>');
	end;
	EndUpdate();
end